/**
 * 符合下列属性的数组 arr 称为 山脉数组 ：
 * arr.length >= 3
 * 存在 i（0 < i< arr.length - 1）使得：
 * arr[0] < arr[1] < ... arr[i-1] < arr[i]
 * arr[i] > arr[i+1] > ... > arr[arr.length - 1]
 * 给你由整数组成的山脉数组 arr ，返回任何满足 arr[0] < arr[1] < ... arr[i - 1] < arr[i] > arr[i + 1] > ... > arr[arr.length - 1] 的下标 i 。
 *
 *https://leetcode.cn/problems/peak-index-in-a-mountain-array/
 *

 */
class PeakIndexInMountainArray {
    public int peakIndexInMountainArray(int[] arr) {
        int left=0;
        int right=arr.length-2;
        int ans=0;
        while(left<=right){
            int mid=left+((right-left)>>>1);
            if(arr[mid]>arr[mid+1]){
                ans=mid;
                right=mid-1;
            }else{
                left=mid+1;
            }
        }
        return ans;
    }
}